/**
 * 密码强度
 * @param val 当前值字符串
 * @description 弱：纯数字，纯字母，纯特殊字符
 * @description 中：字母+数字，字母+特殊字符，数字+特殊字符
 * @description 强：字母+数字+特殊字符
 * @returns 返回处理后的字符串：弱、中、强
 */
export function verifyPasswordStrength(val: string) {
  let v = '0'
  // 弱：纯数字，纯字母，纯特殊字符
  if (/^(?:\d+|[a-zA-Z]+|[!@#$%^&.*]+){6,100}$/.test(val)) v = '1'
  // 中：字母+数字，字母+特殊字符，数字+特殊字符
  if (
    /^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&.*]+$)[a-zA-Z\d!@#$%^&.*]{6,100}$/.test(
      val
    )
  )
    v = '2'
  // 强：字母+数字+特殊字符
  if (
    /^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&.*]+$)(?![a-zA-z\d]+$)(?![a-zA-z!@#$%^&.*]+$)(?![\d!@#$%^&.*]+$)[a-zA-Z\d!@#$%^&.*]{6,100}$/.test(
      val
    )
  )
    v = '3'
  // 返回结果
  return v
}
